/** ****************************************************************************
 * Copyright (c) XXX

 * All rights reserved.
 *
 * @file    
 * @brief   
 * @version V1.0.0
 * @author  
 * @date    
 * @warning No Warnings
 * @note <b>history:</b>
 * 1. create file
 *
 */
#ifndef __RADIOS_HAL_H__
#define __RADIOS_HAL_H__

/*******************************************************************************
 * INCLUDES
 */
#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>

#ifdef __cplusplus
extern "C"{
#endif

void pd_open_dll(bool md134x);

void * pd_load_dll_function(bool md134x, char *fname);

void pd_close_dll(bool md134x);

int pd_lgw_board_setconf(bool md134x, struct lgw_conf_board_s conf);

int pd_lgw_rxrf_setconf(bool md134x, uint8_t rf_chain, struct lgw_conf_rxrf_s conf);

int pd_lgw_rxif_setconf(bool md134x, uint8_t if_chain, struct lgw_conf_rxif_s conf);

int pd_lgw_txgain_setconf(bool md134x, struct lgw_tx_gain_lut_s *conf);

int pd_lgw_start(bool md134x);

int pd_lgw_stop(bool md134x);

int pd_lgw_receive(bool md134x, uint8_t max_pkt, struct lgw_pkt_rx_s *pkt_data);

int pd_lgw_send(bool md134x, struct lgw_pkt_tx_s pkt_data);

int pd_lgw_status(bool md134x, uint8_t select, uint8_t *code);

int pd_lgw_abort_tx(bool md134x);

int pd_lgw_get_trigcnt(bool md134x, uint32_t* trig_cnt_us);

const char* pd_lgw_version_info(bool md134x);

uint32_t pd_get_time_on_air(bool md134x, struct lgw_pkt_tx_s *pkt);









#ifdef __cplusplus
}
#endif

#endif















